package chapter04;

public class Java12_Object_Extends_02 {
    public static void main(String[] args) {

        // TODO 构造方法

        // 当前构建的三个子类对象后，应该有几个父类呢？
        Child2 c1 = new Child2();
        Child2 c2 = new Child2();
        Child2 c3 = new Child2();
        // ∴ 父类对象是在子类对象创建前创建完成的，创建子类前，会调用父类的构造方法完成父类的创建

        // 如果父类的构造方法带有参数会怎么样？
        // 默认情况下，子类对象构建时，会默认调用父类的构造方法完成父类对象的创建，使用的是super的方式，只不过由JVM自动完成
        // ∴ 如果父类提供父类方法，则JVM不会提供默认方法，那么子类应该显示调用super方法创建父类对象

        // new：仅构建一个对象
        // 对象先开辟了内存空间后再执行构造方法
        // 构造方法的主要目的：为了完成内存空间属性的初始化操作,故父类继承过来的属性，一定要提前初始化

    }
}

class Parent2{
    String username;
    Parent2(String name){
        username = name;
        System.out.println("Parent2...");
    }
}

class Child2 extends Parent2{

    Child2(){
        super("张三");
        System.out.println("Child2...");
    }
}